﻿/**********************************************************************
 * @file   OperViewport.h
 * @brief  视口操作器
 * @author BaGuijun (baguijun@163.com)
 * @date   2025-03-04
 *********************************************************************/
#ifndef _OperViewport_H_
#define _OperViewport_H_

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"

namespace ModelOper
{
    /**
     * @brief  视口操作器
     * @author BaGuijun (baguijun@163.com)
     * @date   2025-03-04
     */
    class OperViewport :public Core::FITKActionOperator
    {
        Q_OBJECT;
    public:
        /**
         * @brief    构造函数
         * @author   BaGuijun (baguijun@163.com)
         * @date     2025-03-04
         */
        explicit OperViewport() = default;
        /**
         * @brief    析构函数
         * @author   BaGuijun (baguijun@163.com)
         * @date     2025-03-04
         */
        virtual ~OperViewport() = default;
        /**
         * @brief    执行UI
         * @return   bool                    是否成功
         * @author   BaGuijun (baguijun@163.com)
         * @date     2025-03-04
         */
        virtual bool execGUI() override;
        /**
         * @brief    执行业务
         * @return   bool                    是否成功
         * @author   BaGuijun (baguijun@163.com)
         * @date     2025-03-04
         */
        virtual bool execProfession() override;
    };

    // 按钮注册相关操作
    Register2FITKOperatorRepo(actionWindowCreat, OperViewport);
    Register2FITKOperatorRepo(actionWindowDelete, OperViewport);
    Register2FITKOperatorRepo(actionWindowTileHorizontal, OperViewport);
    Register2FITKOperatorRepo(actionWindowTilingVertical, OperViewport);
    Register2FITKOperatorRepo(actionWindowCascade, OperViewport);
    Register2FITKOperatorRepo(actionWindowManage, OperViewport);
}

#endif
